2024-11-20

「bindice - OpenSCAD Playground」

OpenSCADのESモジュール化達成化記念に、初めて3Dプリンターをゲットした日に作った、0か1しか出ない2面ダイス(バイナリーダイス / bindice)をOpenSCADで作ってみました。


円の解像度をfnパラメータでカスタマイズできるので、12と設定すると低ポリゴン化できました。

h = 10; d = 0.15; fn = 500; module halfcylinder(h) { difference() { cylinder(h, h / 2, h / 2, $fn=fn); translate([-h / 2, 0, 0]) { cube(h); } } } module bindice(h) { halfcylinder(h); translate([h / 2, 0, h / 2]) { rotate([0, 90, 180]) { halfcylinder(h); } } } module ring(r, r2, h) { difference() { cylinder(h, r / 2, r / 2, $fn=fn); translate([0, 0, -h]) { cylinder(h * 2, r2 / 2, r2 / 2, $fn=fn); } } } module zero(h) { translate([0, 0, -d]) { ratio = 1; // 0.8 scale([ratio, 1, 1]) { ring(h / 2, h / 2 - h * 0.15, d * 2); // 0 } } } module one(h) { translate([-h / 16, -h/ 4, -d]) { cube([h / 8, h / 2, d * 2]); // 1 } } module zero_one(h, size) { translate([0, -h / 8, 0]) { one(size); translate([0, 0, h]) { one(size); } } translate([-h / 2, h / 8, h / 2]) { rotate([0, 90, 0]) { zero(size); translate([0, 0, h]) { zero(size); } } } } difference() { bindice(h); zero_one(h, h * 0.5); }
scad2stlで作ってプレビューで見た結果もこの通り!


「bindice - OpenSCAD Playground」

OpenSCAD Playground上の「Edit」ボタンから編集もできるので、いろいろいじって遊んでみてください!

2024-11-19
ウェブで動くOpenSCAD Playgroundは、OpenSCADのWebAssembly版、OpenSCAD WASM Portが使われていました。


これを使ってコマンドライン上でOpenSCADのコードファイル(*.scad)を三角形ポリゴンの集合で3Dモデルを表現する3Dモデルファイル(*.stl)を生成するコマンドラインツールを作りました。C言語のソースコードをコンパイルする感覚で3Dモデルデータを生成できます。

例えば・・・ cube(100); cube.scad として保存。

scad2stl cube.scad

cube.stl が生成されます!


Macであればファインダー上でスペースキーを押すだけ、プレビューで3Dモデルを確認できます。3Dプリンター用の印刷ソフトで印刷しましょう!


「scad2stl on GitHub」

ソースコードと使い方はこちら。Denoとgitがある環境で、git pull して、deno installコマンドでインストールしましょう!

2024-11-18
初めての使った3DプリンターXYZプリンティング社のダヴィンチから10年。価格に惹かれた今年導入、Bambu Lab社の3Dプリンターの調子が良い!手元に残ったダヴィンチ用のフィラメントをBambu Lab P1SのAMSで使うためには大きさの補正が必要そう。そこで、活躍3Dプリンター!


OpenSCADでサクっと作ったサイズ補正リング。OpenSCADのソースコードの解説に、WebAssemblyでコンパイルしブラウザ上で動くようにしたopenscad-playgroundを発見!


「フィラメントサイズ補正リング - OpenSCAD Playground」

「Render」ボタンを押し、その右となりの「STL」でデータをダウンロードできます。OpenSCADのソースコードの先頭に変数への代入があると、自動的にカスタマイズとして表示してくれて便利な、OpenSCAD Playground


あとは、STLデータをご自身の3Dプリンター用の印刷ソフトで読み込ませて印刷するだけ。


印刷!ABSのフィラメントはスティック糊や3Dケープでの固定が必要。


「円筒形ボックス - OpenSCAD Playground」

以前作ったOpenSCAD併用の専用ツールをウェブアプリよりもずっとシンプルに実現できました。3Dプリンターがぐっと手軽になりますね!
(参考、3Dプリンター向け任意サイズの円筒形ボックスの3Dデータ生成用OpenSCADコードを生成するツール


「フィラメントサイズ補正リング - OpenSCAD Playground」

OpenSCADをインストールする必要なく、ウェブ上で編集できるのも3Dモデリングが気軽にできて良いですね!glTFで出力すればXRアプリ用のモデルも作れます!


「めがね - OpenSCAD Playground」

2022年のめがねフェスで印刷した、OpenSCADで作ったメガネもこの通り!パラメータ n の変更で量産できます。
(参考、エルコミュ10周年&めがねフェス! プログラミングとメガネで創る未来


別のモデリングツールで作られた、いい感じに固定できるフィラメントサイズ補正データもあります! by @haruyuki_16278

links
- 7万円、3Dプリンターの衝撃、もうひとつのIoT

2024-11-17
#js 
Xで見かけた紐のように動くリンクの表示方法に一目惚れ!

オープンソース「guerrillacontra/html5-es6-physics-rope」をforkしてファイルを整理して2種類のロープとして実験!


「Verlet Physics Rope muti」
src on GitHub
ゆったり動く左側の紐と、シャキシャキ動く右側の紐。パラメータ(args)のdampingの値を変えています。


「code4fukui/physics-rope」

楽しいUXが作れそうです!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS